package com.shine.core
{
	/**
	 *  The IFactory interface defines the interface that factory classes
	 *  such as ClassFactory must implement.
	 *  An object of type IFactory is a "factory object" which Flex uses
	 *  to generate multiple instances of another class, each with identical
	 *  properties.
	 *
	 *  <p>For example, a DataGridColumn has an <code>itemRenderer</code> of type
	 *  IFactory; it calls <code>itemRenderer.newInstance()</code> to create
	 *  the cells for a particular column of the DataGrid.</p>
	 *
	 *  @see mx.core.ClassFactory
	 */
	public interface IFactory
	{
		/**
		 *  Creates an instance of some class (determined by the class that
		 *  implements IFactory).
		 *
		 *  @return The newly created instance.
		 */
		function newInstance():*;
	}
}